#!/usr/bin/env python3
"""
侦探推理游戏启动脚本
"""

import asyncio
import sys
import os
from pathlib import Path

# 添加当前目录到Python路径
current_dir = Path(__file__).parent
sys.path.insert(0, str(current_dir))

def check_environment():
    """检查运行环境"""
    print("🕵️ 侦探推理游戏")
    print("=" * 50)
    print()
    
    # 检查Python版本
    if sys.version_info < (3, 8):
        print("❌ 需要Python 3.8或更高版本")
        return False
    
    print(f"✅ Python版本: {sys.version}")
    
    # 检查必要的模块
    required_modules = ['openai', 'rich', 'pydantic', 'python-dotenv']
    missing_modules = []
    
    for module in required_modules:
        try:
            __import__(module.replace('-', '_'))
            print(f"✅ {module}: 已安装")
        except ImportError:
            missing_modules.append(module)
            print(f"❌ {module}: 未安装")
    
    if missing_modules:
        print(f"\n请安装缺失的模块: pip install {' '.join(missing_modules)}")
        return False
    
    # 检查配置文件
    env_file = current_dir / '.env'
    template_file = current_dir / 'env.template'
    
    if not env_file.exists() and not template_file.exists():
        print("❌ 未找到配置文件")
        print("请创建.env文件或确保env.template存在")
        return False
    
    if not env_file.exists():
        print("⚠️  未找到.env文件，将使用env.template的默认配置")
        print("建议复制env.template为.env并配置你的API密钥")
    else:
        print("✅ 配置文件: 已找到")
    
    # 检查AI服务配置
    try:
        from config import GameConfig
        GameConfig.validate_config()
        config_info = GameConfig.get_config_info()
        
        if not config_info['api_key_set']:
            print("❌ API密钥未配置")
            print("请在.env文件中设置OPENAI_API_KEY")
            return False
            
        print("✅ API配置: 已配置")
        if GameConfig.DEBUG_MODE:
            print(f"🔧 调试信息: {config_info}")
            
    except Exception as e:
        print(f"❌ 配置检查失败: {e}")
        return False
    
    print("\n🚀 启动游戏...")
    return True

async def main():
    """主函数"""
    # if not check_environment():
    #     input("\n按回车键退出...")
    #     return
    
    try:
        # 导入并启动游戏
        from game_engine import DetectiveGameEngine
        
        game = DetectiveGameEngine()
        await game.start_game()
        
    except KeyboardInterrupt:
        print("\n\n👋 游戏被用户中断")
    except Exception as e:
        print(f"\n❌ 游戏运行出错: {e}")
        print("请检查配置和网络连接")
    finally:
        print("\n感谢游玩！")

if __name__ == "__main__":
    asyncio.run(main()) 